package com.sxy.demo.sxy;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Objects;

/**
 * Description:TODO
 *
 * @author：zhousc
 * @Version：商家商品sku, v0.1 2022-08-22 14:22:47 zhousc
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("rms_goods_supplier_sku")
public class GoodsSupplierSku extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 商家商品spu_id
     */
    private Long supplierSpuId;
    /**
     * 商品标准sku_id
     */
    private Long goodsSkuId;
    /**
     * sku编码
     */
    private String goodsSkuCode;

    /**
     * 供货商id
     */
    private Long supplierId;

    /**
     * 总库存
     */
    private Integer totalStock;
    /**
     * 库存
     */
    private Integer stock;
    /**
     * 增减库存
     */
    private Integer stockNum;
    /**
     * 自编码
     */
    private String selfCode;
    /**
     * 条形码
     */
    private String barCode;
    /**
     * 供货价
     */
    private BigDecimal supplyPrice;

    /**
     * 吊牌价
     */
    private BigDecimal originalPrice;
    /**
     * 供应商建议零售价
     */
    private BigDecimal suggestedRetailPrice;
    /**
     * 批发毛利
     */
    private BigDecimal wholesaleGrossProfit;
    /**
     * 批发毛利率
     */
    private BigDecimal wholesaleGrossProfitRate;
    /**
     * 批发净利(作废)
     */
    @Deprecated
    private BigDecimal wholesaleClearProfit;
    /**
     * 批发净利率(作废)
     */
    @Deprecated
    private BigDecimal wholesaleClearProfitRate;
    /**
     * 批发净利(云猫)
     */
    private BigDecimal wholesaleClearProfitM;
    /**
     * 批发净利率(云猫)
     */
    private BigDecimal wholesaleClearProfitRateM;
    /**
     * 批发净利(平台)
     */
    private BigDecimal wholesaleClearProfitP;
    /**
     * 批发净利率(平台)
     */
    private BigDecimal wholesaleClearProfitRateP;
    /**
     * 零售毛利
     */
    private BigDecimal retailGrossProfit;
    /**
     * 零售毛利率
     */
    private BigDecimal retailGrossProfitRate;
    /**
     * 零售净利(作废)
     */
    @Deprecated
    private BigDecimal retailClearProfit;
    /**
     * 零售净利率(作废)
     */
    @Deprecated
    private BigDecimal retailClearProfitRate;
    /**
     * 零售净利(云猫)
     */
    private BigDecimal retailClearProfitM;
    /**
     * 零售净利率(云猫)
     */
    private BigDecimal retailClearProfitRateM;
    /**
     * 零售净利(平台)
     */
    private BigDecimal retailClearProfitP;
    /**
     * 零售净利率(平台)
     */
    private BigDecimal retailClearProfitRateP;
    /**
     * 出厂价毛利
     */
    private BigDecimal channelWholesaleGP;
    /**
     * 出厂价毛利率
     */
    private BigDecimal channelWholesaleGPR;
    /**
     * 出厂价净利(生活馆批发)
     */
    private BigDecimal channelWholesaleCPSg;
    /**
     * 出厂价净利率(生活馆批发)
     */
    private BigDecimal channelWholesaleCPRSg;
    /**
     * 出厂价净利(云店批发)
     */
    private BigDecimal channelWholesaleCPYd;
    /**
     * 出厂价净利率(云店批发)
     */
    private BigDecimal channelWholesaleCPRYd;
    /**
     * 已售数量
     */
    private Integer soldQuantity;
    /**
     * 图片地址
     */
    private String imageUrl;
    /**
     * 商品状态(商家常规商品状态)；10-待提交，20-审核中，30-竞价失败，40-竞价成功，50-已下架  清仓商品：0-待提交 10-待上架，20-已上架，30-已下架
     */
    private Integer goodsSkuState;
    /**
     * 是否参与竞价；0-否，1-是
     */
    private Integer bidState;
    /**
     * 供货状态：0-取消供货,1-参与供货,2-自主供货
     */
    private Integer supplyState;
    /**
     * 标准类型；0-非标准链接，1-准标准链接，2-标准链接
     */
    private String standardType;
    /**
     * 运费模板
     */
    private Long freightTemplateId;
    /**
     * 单位数量
     */
    private Double unitNum;
    /**
     * 商品单位id
     */
    private Long unitId;

    /**
     * 上架时间
     */
    private Date putOnTime;

    /**
     * 代收运费模板ID
     */
    private Long replaceFreightId;

    @TableField(exist = false)
    private boolean bidFlag;
    /**
     * 编辑状态：0-不可编辑,1-可编辑
     */
    @TableField(exist = false)
    private Integer modifyState;

    /**
     * 消费税率
     */
    private BigDecimal consumptionTaxRate;

    /**
     * 增值税率
     */
    private BigDecimal vatTaxRate;

    /**
     * 商品重量
     */
    private BigDecimal goodsWeight;


    @Override
    public boolean equals(Object obj) {
        if (obj instanceof GoodsSupplierSku) {
            GoodsSupplierSku vo = (GoodsSupplierSku) obj;
            if (null == vo.getGoodsSkuCode()) {
                return false;
            }
            if (vo.getGoodsSkuCode().equals(this.goodsSkuCode)) {
                return true;
            }
        }
        return false;
    }

    @Override
    public int hashCode() {
        return Objects.hash(goodsSkuCode);
    }

    /**
     * @see freightTemplateId
     */
    private RmsScmFreightTemplate rmsScmFreightTemplate;
    /**
     * @see freightTemplateId
     */
    private List<RmsScmFreightTemplateSellArea> sellAreas;
    /**
     * @see freightTemplateId
     */
    private List<RmsScmFreightTemplateCondition> conditions;
    /**
     * @see freightTemplateId
     */
    private RmsScmFreightTemplateDisableSellArea one;
}
